package cn.edu.sjtu.se.dslab.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import cn.edu.sjtu.se.dslab.action.bean.PageBean;
import cn.edu.sjtu.se.dslab.component.data.DataType;
import cn.edu.sjtu.se.dslab.dao.IDataTypeDao;
import cn.edu.sjtu.se.dslab.exception.DBException;
import cn.edu.sjtu.se.dslab.service.IDataTypeService;

@Service("dataTypeService")
@Transactional
public class DataTypeServiceImpl implements IDataTypeService {

protected Logger logger = LoggerFactory.getLogger(getClass());
	
	@Resource(name = "dataTypeDao")
	private IDataTypeDao dataTypeDao;
	
	@Override
	public boolean addDataType(DataType dataType) {
		// TODO Auto-generated method stub
		dataTypeDao.save(dataType);
		return true;
	}

	@Override
	public DataType getDataTypeById(long id) {
		// TODO Auto-generated method stub
		return dataTypeDao.queryById(id);
	}

	@Override
	public DataType getDataTypeByUri(String uri) {
		// TODO Auto-generated method stub
		return dataTypeDao.queryByUri(uri);
	}

	@Override
	public boolean updateDataType(DataType dataType) {
		// TODO Auto-generated method stub
		dataTypeDao.update(dataType);
		return true;
	}

	@Override
	public PageBean<DataType> getPageBean(int pageNo) throws DBException {
		// TODO Auto-generated method stub
		return dataTypeDao.queryByPageNum(pageNo);
	}

	@Override
	public List<DataType> getDataTypeList() {
		// TODO Auto-generated method stub
		return dataTypeDao.queryAll();
	}

	@Override
	public List<DataType> getDataTypeByText(String text) {
		// TODO Auto-generated method stub
		return dataTypeDao.queryByProperty(text);
	}

	@Override
	public DataType getDataTypeByXmiId(String xmiId) {
		// TODO Auto-generated method stub
		return dataTypeDao.queryByXmiId(xmiId);
	}

}
